package com.version1_2.dao.implement;

import com.SQLGroup.SQLAccess;
import com.util.property.Properties;
import com.version1_2.dao.SubscriDao1_2;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.dao.EmptyResultDataAccessException;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Repository;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * Created by reeves on 2015/8/23.
 */

@Repository
public class SubscriDao12Impl implements SubscriDao1_2 {

    @Autowired
    private JdbcTemplate jdbcTemplate;

    /*创建log4j对象*/
    private static final Logger LOGGER = Logger.getLogger(SubscriDao12Impl.class);

    /**
     *@Description: 获取推荐界面大图信息列表
     */
    @Override
    public List<Map<String, Object>> getSubscriTitleList() {
        List<Map<String, Object>> titleList = null;

        try {
            titleList = jdbcTemplate.queryForList(SQLAccess.SelectRecommendSlidInfoVersion1_2, new Object[]{Properties.RecomTitlePic_Num});
        } catch (EmptyResultDataAccessException exception) {
            LOGGER.error("获取推荐界面大图信息列表,未查询到大图信息,EmptyResultDataAccessException...", exception);
        }
        return titleList;
    }

    /**
     *@Description: 获取推荐信息列表，新的接口
     */
    public Map<String, Object> getNewSubscriPageList() {
        //TODO: 获取推荐界面信息列表

        Map<String, Object> recomMap = new HashMap<>();

        String sqlStr = "";

        /**
         * table page_recommend（pageId,pageDate,firstTitle,typeId,readNumber,imageSrc2,secondType,thirdTypeName,recomPos）
         */

        // 1. 获取精选信息列表（条件：recomPos=2、3、4）
        List<Map<String,Object>> chosenList = new ArrayList<>();
        for(int i=2;i<=4;i++){
            List tempList = jdbcTemplate.queryForList(SQLAccess.SelectChosenRecommendInfoVersion1_2,i);

            if (tempList.isEmpty()) {
                LOGGER.error("获取精选信息列表,取得的chosenList为空");
            }
            chosenList.addAll(tempList);

        }


        // 2. 获取整合信息列表（条件：recomPos=5、6、7、8、9）
        List<Map<String,Object>> confirmList = new ArrayList<>();
        for(int i=5;i<=9;i++){
            List tempList = jdbcTemplate.queryForList(SQLAccess.SelectConformRecommendInfoVersion1_2,i);

            if (tempList.isEmpty()) {
                LOGGER.error("获取精选信息列表,取得的chosenList为空");
            }
            confirmList.addAll(tempList);

        }


        // 3. 获取Break信息列表（条件：recomPos=11、13、15、17、19）
        List<Map<String,Object>> breakList = new ArrayList<>();
        for(int i=5;i<=9;i++){
            List tempList = jdbcTemplate.queryForList(SQLAccess.SelectBreakRecommendInfoVersion1_2,2*i+1);

            if (tempList.isEmpty()) {
                LOGGER.info("获取精选信息列表,取得的chosenList为空");
            }
            breakList.addAll(tempList);

        }


        // 4. 获取专题信息列表（条件：recomPos=10、12、14、16、18、20）
        /*获取专题1的列表*/
        List subject1List = jdbcTemplate.queryForList(SQLAccess.SelectSubject1RecommendInfoVersion1_2);
        if (subject1List.isEmpty()) {
            LOGGER.info("获取专题一信息列表，取得subject1List为空");
        }

        /*获取专题2的列表*/
        List subject2List = jdbcTemplate.queryForList(SQLAccess.SelectSubject2RecommendInfoVersion1_2);
        if (subject2List.isEmpty()) {
            LOGGER.info("获取专题二信息列表，取得subject1List为空");
        }

        /*获取专题3的列表*/
        List subject3List = jdbcTemplate.queryForList(SQLAccess.SelectSubject3RecommendInfoVersion1_2);
        if (subject3List.isEmpty()) {
            LOGGER.info("获取专题三信息列表，取得subject1List为空");
        }

        /*获取专题4的列表*/
        List subject4List = jdbcTemplate.queryForList(SQLAccess.SelectSubject4RecommendInfoVersion1_2);
        if (subject4List.isEmpty()) {
            LOGGER.info("获取专题四信息列表，取得subject1List为空");
        }

        /*获取专题5的列表*/
        List subject5List = jdbcTemplate.queryForList(SQLAccess.SelectSubject5RecommendInfoVersion1_2);
        if (subject5List.isEmpty()) {
            LOGGER.info("获取专题五信息列表，取得subject1List为空");
        }

        /*获取专题6的列表*/
        List subject6List = jdbcTemplate.queryForList(SQLAccess.SelectSubject6RecommendInfoVersion1_2);
        if (subject6List.isEmpty()) {
            LOGGER.info("获取专题六信息列表，取得subject1List为空");
        }


        // 5. 各个固定的图片的名称：
        //    精选-整合间隔图片：chosen-confirm-break.jpg;
        //    整合-专题间隔图片：confirm-subject-break.jpg;
        //    专题1大图：subject1.jpg;
        //    专题2大图：subject2.jpg;
        //    专题3大图：subject3.jpg;
        //    专题4大图：subject4.jpg;
        //    专题5大图：subject5.jpg;
        //    专题6大图：subject6.jpg;

        recomMap.put("chosenList", chosenList);
        recomMap.put("confirmList", confirmList);
        recomMap.put("breakList", breakList);
        recomMap.put("subject1List", subject1List);
        recomMap.put("subject2List", subject2List);
        recomMap.put("subject3List", subject3List);
        recomMap.put("subject4List", subject4List);
        recomMap.put("subject5List", subject5List);
        recomMap.put("subject6List", subject6List);

        return recomMap;
    }
}
